# 函数作为返回值
# 高阶函数除了可以接受函数作为参数外，还可以把函数作为结果值返回。
# *args与**kwargs的区别，两者都是python中的可变参数。
# 　　　　*args表示任何多个无名参数，它本质是一个tuple；
# 　　　　**kwargs表示关键字参数，它本质上是一个dict；


def lazy_sum(*args):
    def sum():
        a = 0
        for x in args:
            a = a+x
        return a
    return sum


f = lazy_sum(1, 4, 67, 243, 3)
print(f)
print(f())
# 请再注意一点，当我们调用lazy_sum()时，每次调用都会返回一个新的函数，即使传入相同的参数：
f1 = lazy_sum(1, 4, 67, 243, 3)
print(f == f1)
